javascript 是解释型、动态的、弱类型语言

  • 解释型:直至程序运行前一刻,只有源代码,无可执行文件。后逐步解释->执行->解释->执行…( 速度要求不高、对系统兼容性有要求);
  • 编译型:一次性将所有代码全部转换成机器语言,后写成可执行文件(执行速度快、系统要求低);

  • 动态类型语言:只在运行期间才去做数据类型检查的语言。
  • 静态类型语言:编译期检查。

Static typing when possible, dynamic typing when needed. 动态类型语言不需要给任何变量指定数据类型,在第一次赋值时候,将内部数据类型记录。


  • 弱类型定义语言:数据类型可被忽略,同一变量可被多次赋予不同类型的值(速度快)
  • 强类型定义语言:强制数据类型定义的语言(一旦定义,后不经强制类型转换,数据类型不可改变,严谨,安全);